class Person {
  // 不能省略
  static time:string ="周末"        // 静态属性，可以直接使用类来使用 Person.time
  username: string;
  public password: number; // public 是默认的
  private _height: number = 185; // 只在当前类中能访问
  protected weight: number = 65; // 在类的子类中，能访问 ,实例中也不能访问
  readonly like?: string = "456"; // 表示初始化后就不可再修改，但如果是引用类型，是可以修改其中的属性的

  constructor(username: string, password: number, like?: string) {
    this.username = username;
    this.password = password;
  }
  // 这儿不被推荐
//   getHeight() {
//     console.log(this._height);
//   }

//   setHeight(newHeight: number) {
//     this._height = newHeight;
//   }

  // 属性访问器
  get height(){
      return this._height
  }

  set height(newHeight: number){
    this._height = newHeight;
  }

  say() {
    console.log("username---", this.username);
  }
}

class Student extends Person {
  sex?: string;
  constructor(username: string, password: number, sex?: string) {
    super(username, password);
    this.sex = sex;
  }

  // 重写
  say() {
    console.log(this.weight);
    console.log(this.sex || "不存在");
  }
}

let s = new Student("wxj", 18);

// console.log(s);
s.say();
s.height=255        // 访问器
console.log(s.height);


export {};
